/**
 * 看看可以怎么打印
 * 有多种方式，不过省事的方式只能使用奇怪的符号： 
 *   :?
 *   :#?
 * 或者是 dbg!宏
 */

//具有debu该属性的结构，这样才可以打印
#[derive(Debug)]
struct Family{
    father:String,
    mather:String,
    address:String
}

fn main(){
    let mut mf=Family{
        father:String::from("lu"),
        mather:String::from("hu"),
        address:String::from("中国")
    };
    println!("我家-{},{},{}",mf.father,mf.mather,mf.address);
    print_family(&mf);
    print_family_use_dbg(&mf);
}

fn print_family(f:&Family){
    //你不能直接打印，否则会有奇奇怪怪的错误提示
    //println!("{}",f);  // 这个会提示错误，所以注释掉了

    //使用奇怪符号 :?打印结构体
    println!("我家:?-{:?}",f);

    //使用奇怪的符号，可以打印结构体 :#?
    println!("我家:#?-{:#?}",f);
}

fn print_family_use_dbg(f:&Family){
    dbg!(f);
}